This invention relates broadly to data processing systems wherein a central processor unit communicates with several terminal units and more particularly to a method and associated apparatus for permitting the central processor to continue execution while data is being entered into it from the central processor keyboard. Thus, the present invention may be seen as an interrupt technique for interrupting a central processor to allow processing of data from a peripheral, its keyboard.
The subject invention is applicable to any computer system in which direct access to a keyboard or other peripheral buffer is possible. By direct access it is meant that the system can be programmed to interrogate the particular buffer to ascertain its contents and cause data to be sent to or accepted by the buffer. The invention is particularly applicable in adapting compact, relatively inexpensive, modularized central processing units to communicate with and process data from a number of terminal units. Such processors commonly employ microprogramming and a firmware control section.
Because of design and cost considerations, such central processors (CPU's) have been organized such that all processing is halted when a keyboard entry is required at the central processor. This organization can be very undesirable when the CPU is to be used to communicate with a number of terminal units.
To illustrate further, the central processor may be executing a program when certain data needs to be entered from the central processor station. A keyboard macroinstruction would therefore occur in the CPU macroprogram sequence. This instruction may cause all of the associated terminal units to be inoperative during the duration of the keyboard input to the central processor. Hence, valuable computer time is wasted, and undesirable "hang-ups" occur at terminal units to the dissatisfaction of the users. Because the speed of manual data input through the central processor keyboard is relatively slow, many computer instructions could be executed during intervals in which no data exists in the keyboard input buffer. However, it has been heretofore impossible to efficiently utilize the time period.
Prior art interrupt techniques have been peripheral oriented. The interrupts have been generated by the peripheral terminal raising a hardware signal requesting the CPU's service. Thus, a special interruption mechanism must be built into the CPU-terminal system. Where it is desired to adapt a CPU and terminal which have not been commonly designed, the prior art interrupt mechanism is of little help. The prior art technique is particularly inappropriate for providing an interrupt mechanism between a CPU and its own keyboard in a small CPU-terminal system as described above.